This invention relates to data storage in a computerized storage area network (SAN) or system utilizing redundant disk array controllers (RDAC""s). More particularly, the present invention relates to a new and improved technique of managing transfers of access control of logical data volumes between the RDAC""s. When a host device sends a data access request to one of the RDAC""s for access to a logical data volume that is controlled by another one of the RDAC""s, it is determined whether the logical data volume is currently exclusively controlled by another RDAC and the SAN is analyzed to determine whether to transfer access control of the logical data volume to the RDAC that received the data access request.
A storage area network (SAN) typically includes a plurality of host devices connected through a switched fabric to a plurality of storage arrays. The host devices access a plurality of logical data volumes present on the plurality of storage arrays, usually on behalf of a plurality of client devices, which are typically connected to each host device. Each storage array is connected to one or more host devices through the switched fabric.
Each storage array includes multiple individual storage devices, typically arranged in a RAID (Redundant Array of Independent Drives) configuration. The RAID storage devices supply data storage space for the logical data volumes. The logical data volumes are commonly striped across multiple storage arrays, so host devices that access a given logical data volume must have a connection to each of the storage arrays that contains a portion of the logical data volume. The individual storage devices include hard drives, compact disk (CD) drives, tape drives and the like.
Each storage array also commonly includes more than one array controller, through which the storage devices and logical data volumes are accessed. Each array controller connects to the switched fabric. Thus, a data transfer path between one of the host devices and one of the storage arrays is established from the one host device, through the switched fabric, to the one array controller.
Some of the host devices may access the same storage array through more than one data transfer path through the switched fabric. Also, more than one host device may access the same logical data volume through different data transfer paths on behalf of the same or different client devices. Therefore, more than one array controller of a storage array may receive a data access request to the same logical data volume, or portion thereof, present on the storage array.
When one of the array controllers of a given storage array processes a data access request to a given logical data volume, that array controller is said to have access control or xe2x80x9cownershipxe2x80x9d of the logical data volume. When one array controller has ownership of the logical data volume, no other array controller in the storage array can access the logical data volume.
When an array controller receives a data access request to a logical data volume that the array controller does not currently own, it transfers ownership of the logical data volume to itself in an automatic volume transfer (AVT) process and then processes the data access request. When two or more host devices need to access the same logical data volume, but do so through different array controllers, then the array controllers repetitively transfer ownership of the logical data volume back and forth between themselves. The repetitive ownership transferring is called xe2x80x9cthrashing.xe2x80x9d Thrashing can severely degrade the performance of data accesses to the affected logical data volume, since significant time is taken up performing the AVT processes, instead of accessing the affected logical data volume.
When two or more host devices can access the same logical data volume through the same common array controller, then thrashing and unnecessary AVT processes are avoided, because the common array controller can process all of the data access requests. However, sometimes more than one host device cannot establish data transfer paths to the same array controller, because one host device may never have had a physical connection to the array controller or one existing physical path may have become inoperative. Therefore, transferring ownership of the logical data volume may cause one of the host devices to completely lose access to the logical data volume, yet not transferring ownership may deny access for another host device.
It is with respect to these and other background considerations that the present invention has evolved.
The present invention prevents excessive thrashing between array controllers in a storage area network (SAN) when more than one host device is attempting to access the same logical data volume through different array controllers. Thrashing is prevented by granting ownership of a logical data volume to a particular array controller for a period of exclusivity. During the exclusivity period, ownership of the logical data volume may not be transferred to another array controller. The logical data volume is said to be xe2x80x9cstickyxe2x80x9d to the particular array controller for the exclusivity, or xe2x80x9csticky,xe2x80x9d time period, e.g. about five to ten seconds or longer depending on the situation.
The present invention also considers whether a host device may lose access to a needed logical data volume that it is currently accessing before permitting transfer of ownership of the logical data volume from the current-owner array controller to a nonowner array controller that has received a data access request to the logical data volume. Therefore, before transferring ownership of the logical data volume, the nonowner array controller examines a portion of the current topology of the SAN to determine whether any host device that requires access to the logical data volume would lose access to the logical data volume if ownership were to be transferred. The topology is the set of all connections between the host devices and the storage arrays. In this case, the nonowner array controller determines those available connections to the storage array of which it is a part, including connections through other array controllers in the same storage array. If, according to the available connections, any host device would lose access to the logical data volume upon transferring ownership from the current-owner array controller to the nonowner array controller, then preference is given to not transferring ownership. Ownership transfer is granted only if the requesting host device cannot establish a data transfer path to the current-owner array controller and the requesting host device has priority for accessing the logical data volume over the host device that is currently accessing the logical data volume.
These and other improvements are achieved by accessing a logical data volume in a storage area network that has a plurality of host devices and a storage array. The logical data volume is located on the storage array. The storage array has a plurality of array controllers through which the host devices access the logical data volume. A first array controller receives a request to access the logical data volume. The logical data volume, however, is currently owned by a second array controller, so the access request requires transfer of the ownership of the logical data volume from the second array controller to the first array controller. It is determined whether the ownership of the logical data volume by the second array controller is within an exclusive period of time. If so, then the ownership transfer is denied. However, if the ownership by the second array controller is no longer exclusive, then the ownership transfer is granted.
It is preferable that, upon granting the ownership transfer, another exclusive period of time begins. Thus, the same method may be used by the second array controller when it receives a subsequent request to access the logical data volume. It is also preferable upon granting the ownership transfer that the host devices be informed that the first array controller now has ownership of the logical data volume. Thus, the host devices may determine to use the first array controller for the subsequent access requests, so that another ownership transfer can be avoided. It is further preferable, when it is determined that ownership is exclusive to the second array controller, that information be sent to the host device that issued the access request indicating that the second array controller has exclusive ownership of the logical data volume. Then the requesting host device preferably re-issues the access request to the second array controller.
Upon a determination that ownership of the logical data volume is not exclusive, it is preferable also to determine whether any other host devices, which are currently accessing the logical data volume through the second array controller, can also access the logical data volume through the first array controller. There is a preference not to transfer ownership, so that thrashing will be reduced. However, if ownership is no longer exclusive and all the other host devices, that are currently accessing the logical data volume, can establish a data transfer path through the first array controller, then the ownership transfer is preferably granted. On the other hand, if any one of the other host devices cannot access the first array controller and would lose access to the logical data volume if the ownership transfer were to be granted, then it is preferable to determine whether the requesting host device can also access the logical data volume through the second array controller. If so, then it is preferable to deny the ownership transfer and to inform the requesting host device that the second array controller has ownership, so the requesting host device can re-issue its access request through the second array controller. However, if the requesting host device cannot access the second array controller, then there is a conflict between the requesting host device and the one other host device, since denying the ownership transfer will also deny the requesting host device access to the logical data volume, while granting the ownership transfer will cause the one other host device to lose access to the logical data volume. Either way, one of the host devices will not have access to the logical data volume. To resolve the conflict, since there is a preference not to transfer ownership, the ownership transfer will be granted only if the requesting host device has priority over the other host device for accessing the logical data volume.
The previously mentioned and other improvements are also achieved in a method of accessing the logical data volume wherein the access request is issued from the requesting host device to the first array controller. Under conditions where the first array controller receives the access request, but the second array controller currently has ownership of the logical data volume, the access request requires an ownership transfer. It is then determined whether the ownership transfer would eliminate access to the logical data volume for any other host device(s). If so, then the ownership transfer is denied. Otherwise, the ownership transfer is granted.
If the ownership transfer would eliminate access for the other host device(s), then it is preferable to determine whether the requesting host device can access the logical data volume through the second array controller. If so, then it is also preferable to inform the requesting host device that the second array controller has exclusive ownership of the logical data volume, so the requesting host device may re-issue the access request to the second array controller and not have to wait for the first array controller to be able to take ownership of the logical data volume. On the other hand, if the requesting host device cannot access the logical data volume through the second array controller, then it is further preferable to determine whether the requesting host device has priority over the other host device for accessing the logical data volume. If so, then the ownership transfer is granted. Otherwise, the ownership transfer is denied.
The previously mentioned and other improvements are also achieved in a storage area network that comprises a storage array, first and second array controllers disposed within the storage array and first and second (or more) host devices connected to the storage array at the first and second array controllers, respectively. The storage array also contains a plurality of logical data volumes, including a shared logical data volume, all of which the host devices access through the array controllers. Each array controller may have ownership of one or more of the logical data volumes, such that each logical data volume is owned by only one array controller at a time. Such ownership is exclusive for an exclusive period of time, during which the ownership cannot be transferred. Thus, ownership can be transferred between the array controllers only after the expiration of the exclusive period of time and upon the receipt of an access request from one of the host devices. The first host device issues a request to access the shared logical data volume through the first array controller, and the second host device issues an access request for the same logical data volume through the second array controller. Upon receiving the access request from the first host device, the first array controller establishes ownership (assuming an xe2x80x9cinitialxe2x80x9d access request) of the shared logical data volume and thereupon starts the exclusive period of time. Upon receiving the second access request, however, the second array controller determines whether the first array controller has exclusive ownership, rejects the second access request if ownership is still exclusive, and transfers ownership of the shared logical data volume to the second array controller if the exclusive period of time has expired.
It is preferable that the second array controller restarts the exclusive period of time upon transferring ownership to itself of the shared logical data volume and also notifies the host devices of the exclusive ownership status. The second array controller also preferably determines whether the ownership transfer of the shared logical data volume would eliminate access for the first host device. If not, then the second array controller proceeds to transfer ownership to itself of the shared logical data volume. Otherwise, the second array controller preferably determines whether the second host device can access the shared logical data volume through the first array controller. If so, then the second array controller preferably rejects the access request. Thus, the second host device can re-issue the access request through the first array controller, since the second host device is known to have access thereto. If the second host device cannot access the shared logical data volume through the first array controller, however, then the second array controller preferably determines whether the second host device has priority over the first host device for accessing the shared logical data volume. If so, then the second array controller preferably proceeds with transferring to itself the ownership of the shared logical data volume.
A more complete appreciation of the present invention and its scope, and the manner in which it achieves the above noted improvements, can be obtained by reference to the following detailed description of presently preferred embodiments of the invention taken in connection with the accompanying drawings, which are briefly summarized below, and the appended claims.